﻿Namespace Helpers
    ''' <summary>
    ''' Es una coleccion de Menu, el cual se dibuja en el panel correspondiente de la aplicacion.
    ''' </summary>
    ''' <remarks></remarks>
    Public Class MenuColeccion
        Inherits System.Collections.Generic.List(Of Menu)

#Region "Subclases"

        ''' <summary>
        ''' Clase MENU conteniendo las propiedades necesarias para la identificación y display de cada elemento.
        ''' </summary>
        ''' <remarks></remarks>
        Public Class Menu

#Region "Propiedades"

            ''' <summary>
            ''' Identificación única del elemento.
            ''' </summary>
            <Newtonsoft.Json.JsonProperty("id")> _
            Public Property Id As Integer
            ''' <summary>
            ''' Texto a mostrar en la opción de menú.
            ''' </summary>
            <Newtonsoft.Json.JsonProperty("text")> _
            Public Property Text As String
            ''' <summary>
            ''' Ayuda de la opción de menú.
            ''' </summary>
            <Newtonsoft.Json.JsonProperty("description")> _
            Public Property Description As String
            ''' <summary>
            ''' Indica si el elemento es final o un submenú.
            ''' </summary>
            <Newtonsoft.Json.JsonProperty("leaf")> _
            Public Property IsLeaf As Boolean
            ''' <summary>
            ''' URL conteniendo la página a mostrar.
            ''' </summary>
            ''' <remarks>Ejemplo: "scripts/Usuarios.js"</remarks>
            <Newtonsoft.Json.JsonProperty("url")> _
            Public Property URL As String
            ''' <summary>
            ''' Nombre del objeto de negocios que se asociará a la UI.
            ''' </summary>
            <Newtonsoft.Json.JsonProperty("programa")> _
            Public Property Programa As String
            ''' <summary>
            ''' Apunta a una subcolección de elementos de menú.
            ''' </summary>
            <Newtonsoft.Json.JsonProperty("children")> _
            Public Property Children As MenuColeccion

#End Region

        End Class

#End Region

    End Class

End Namespace